home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
PROGMISC
/
PCSSP.LZH
/
PC-SSP.ZIP
/
STATRAND.ZIP
/
RANDU.FOR
< prev
Wrap
Text File
|
1985-11-29
|
3KB
|
62 lines
C
C ..................................................................
C
C SUBROUTINE RANDU
C
C PURPOSE
C COMPUTES UNIFORMLY DISTRIBUTED RANDOM REAL NUMBERS BETWEEN
C 0 AND 1.0 AND RANDOM INTEGERS BETWEEN ZERO AND
C 2**31. EACH ENTRY USES AS INPUT AN INTEGER RANDOM NUMBER
C AND PRODUCES A NEW INTEGER AND REAL RANDOM NUMBER.
C
C USAGE
C CALL RANDU(IX,IY,YFL)
C
C DESCRIPTION OF PARAMETERS
C IX - FOR THE FIRST ENTRY THIS MUST CONTAIN ANY ODD INTEGER
C NUMBER WITH NINE OR LESS DIGITS. AFTER THE FIRST ENTRY,
C IX SHOULD BE THE PREVIOUS VALUE OF IY COMPUTED BY THIS
C SUBROUTINE.
C IY - A RESULTANT INTEGER RANDOM NUMBER REQUIRED FOR THE NEXT
C ENTRY TO THIS SUBROUTINE. THE RANGE OF THIS NUMBER IS
C BETWEEN ZERO AND 2**31
C YFL- THE RESULTANT UNIFORMLY DISTRIBUTED, FLOATING POINT,
C RANDOM NUMBER IN THE RANGE 0 TO 1.0
C
C REMARKS
C THIS SUBROUTINE IS SPECIFIC TO SYSTEM/360 AND WILL PRODUCE
C 2**29 TERMS BEFORE REPEATING. THE REFERENCE BELOW DISCUSSES
C SEEDS (65539 HERE), RUN PROBLEMS, AND PROBLEMS CONCERNING
C RANDOM DIGITS USING THIS GENERATION SCHEME. MACLAREN AND
C MARSAGLIA, JACM 12, P. 83-89, DISCUSS CONGRUENTIAL
C GENERATION METHODS AND TESTS. THE USE OF TWO GENERATORS OF
C THE RANDU TYPE, ONE FILLING A TABLE AND ONE PICKING FROM THE
C TABLE, IS OF BENEFIT IN SOME CASES. 65549 HAS BEEN
C SUGGESTED AS A SEED WHICH HAS BETTER STATISTICAL PROPERTIES
C FOR HIGH ORDER BITS OF THE GENERATED DEVIATE.
C SEEDS SHOULD BE CHOSEN IN ACCORDANCE WITH THE DISCUSSION
C GIVEN IN THE REFERENCE BELOW. ALSO, IT SHOULD BE NOTED THAT
C IF FLOATING POINT RANDOM NUMBERS ARE DESIRED,AS ARE
C AVAILABLE FROM RANDU, THE RANDOM CHARACTERISTICS OF THE
C FLOATING POINT DEVIATES ARE MODIFIED AND IN FACT THESE
C DEVIATES HAVE HIGH PROBABILITY OF HAVING A TRAILING LOW
C ORDER ZERO BIT IN THEIR FRACTIONAL PART.
C
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
C NONE
C
C METHOD
C POWER RESIDUE METHOD DISCUSSED IN IBM MANUAL C20-8011,
C RANDOM NUMBER GENERATION AND TESTING
C
C ..................................................................
C
SUBROUTINE RANDU(IX,IY,YFL)
IY=IX*65539
IF(IY)5,6,6
5 IY=IY+2147483647+1
6 YFL=IY
YFL=YFL*.4656613E-9
RETURN
END